﻿using System;
using System.Collections.Generic;

namespace Sample
{
    public class DataController
    {
        public static IEnumerable<Product> GetProducts()
        {
            if (System.Web.HttpContext.Current.Session["Products"] == null)
            {
                var products = getProducts();
                System.Web.HttpContext.Current.Session.Add("Products", products);
                return products;
            }
            return (IEnumerable<Product>)System.Web.HttpContext.Current.Session["Products"];
        }
        private static IEnumerable<Product> getProducts()
        {
yield return new Product { ProductID = 707, Name = "Sport-100 Helmet, Red", ProductModel = "Sport-100", Description = "Universal fit, well-vented, lightweight , snap-on visor.", Price = (decimal)34.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 708, Name = "Sport-100 Helmet, Black", ProductModel = "Sport-100", Description = "Universal fit, well-vented, lightweight , snap-on visor.", Price = (decimal)34.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 709, Name = "Mountain Bike Socks, M", ProductModel = "Mountain Bike Socks", Description = "Combination of natural and synthetic fibers stays dry and provides just the right cushioning.", Price = (decimal)9.50, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 710, Name = "Mountain Bike Socks, L", ProductModel = "Mountain Bike Socks", Description = "Combination of natural and synthetic fibers stays dry and provides just the right cushioning.", Price = (decimal)9.50, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 711, Name = "Sport-100 Helmet, Blue", ProductModel = "Sport-100", Description = "Universal fit, well-vented, lightweight , snap-on visor.", Price = (decimal)34.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 712, Name = "AWC Logo Cap", ProductModel = "Cycling Cap", Description = "Traditional style with a flip-up brim; one-size fits all.", Price = (decimal)8.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 713, Name = "Long-Sleeve Logo Jersey, S", ProductModel = "Long-Sleeve Logo Jersey", Description = "Unisex long-sleeve AWC logo microfiber cycling jersey", Price = (decimal)49.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 714, Name = "Long-Sleeve Logo Jersey, M", ProductModel = "Long-Sleeve Logo Jersey", Description = "Unisex long-sleeve AWC logo microfiber cycling jersey", Price = (decimal)49.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 715, Name = "Long-Sleeve Logo Jersey, L", ProductModel = "Long-Sleeve Logo Jersey", Description = "Unisex long-sleeve AWC logo microfiber cycling jersey", Price = (decimal)49.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 716, Name = "Long-Sleeve Logo Jersey, XL", ProductModel = "Long-Sleeve Logo Jersey", Description = "Unisex long-sleeve AWC logo microfiber cycling jersey", Price = (decimal)49.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 717, Name = "HL Road Frame - Red, 62", ProductModel = "HL Road Frame", Description = "Our lightest and best quality aluminum frame made from the newest alloy; it is welded and heat-treated for strength. Our innovative design results in maximum comfort and performance.", Price = (decimal)1431.50, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 718, Name = "HL Road Frame - Red, 44", ProductModel = "HL Road Frame", Description = "Our lightest and best quality aluminum frame made from the newest alloy; it is welded and heat-treated for strength. Our innovative design results in maximum comfort and performance.", Price = (decimal)1431.50, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 719, Name = "HL Road Frame - Red, 48", ProductModel = "HL Road Frame", Description = "Our lightest and best quality aluminum frame made from the newest alloy; it is welded and heat-treated for strength. Our innovative design results in maximum comfort and performance.", Price = (decimal)1431.50, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 720, Name = "HL Road Frame - Red, 52", ProductModel = "HL Road Frame", Description = "Our lightest and best quality aluminum frame made from the newest alloy; it is welded and heat-treated for strength. Our innovative design results in maximum comfort and performance.", Price = (decimal)1431.50, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 721, Name = "HL Road Frame - Red, 56", ProductModel = "HL Road Frame", Description = "Our lightest and best quality aluminum frame made from the newest alloy; it is welded and heat-treated for strength. Our innovative design results in maximum comfort and performance.", Price = (decimal)1431.50, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 722, Name = "LL Road Frame - Black, 58", ProductModel = "LL Road Frame", Description = "The LL Frame provides a safe comfortable ride, while offering superior bump absorption in a value-priced aluminum frame.", Price = (decimal)337.22, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 723, Name = "LL Road Frame - Black, 60", ProductModel = "LL Road Frame", Description = "The LL Frame provides a safe comfortable ride, while offering superior bump absorption in a value-priced aluminum frame.", Price = (decimal)337.22, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 724, Name = "LL Road Frame - Black, 62", ProductModel = "LL Road Frame", Description = "The LL Frame provides a safe comfortable ride, while offering superior bump absorption in a value-priced aluminum frame.", Price = (decimal)337.22, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 725, Name = "LL Road Frame - Red, 44", ProductModel = "LL Road Frame", Description = "The LL Frame provides a safe comfortable ride, while offering superior bump absorption in a value-priced aluminum frame.", Price = (decimal)337.22, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 726, Name = "LL Road Frame - Red, 48", ProductModel = "LL Road Frame", Description = "The LL Frame provides a safe comfortable ride, while offering superior bump absorption in a value-priced aluminum frame.", Price = (decimal)337.22, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 727, Name = "LL Road Frame - Red, 52", ProductModel = "LL Road Frame", Description = "The LL Frame provides a safe comfortable ride, while offering superior bump absorption in a value-priced aluminum frame.", Price = (decimal)337.22, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 728, Name = "LL Road Frame - Red, 58", ProductModel = "LL Road Frame", Description = "The LL Frame provides a safe comfortable ride, while offering superior bump absorption in a value-priced aluminum frame.", Price = (decimal)337.22, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 729, Name = "LL Road Frame - Red, 60", ProductModel = "LL Road Frame", Description = "The LL Frame provides a safe comfortable ride, while offering superior bump absorption in a value-priced aluminum frame.", Price = (decimal)337.22, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 730, Name = "LL Road Frame - Red, 62", ProductModel = "LL Road Frame", Description = "The LL Frame provides a safe comfortable ride, while offering superior bump absorption in a value-priced aluminum frame.", Price = (decimal)337.22, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 731, Name = "ML Road Frame - Red, 44", ProductModel = "ML Road Frame", Description = "Made from the same aluminum alloy as our top-of-the line HL frame, the ML features a lightweight down-tube milled to the perfect diameter for optimal strength. Men's version.", Price = (decimal)594.83, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 732, Name = "ML Road Frame - Red, 48", ProductModel = "ML Road Frame", Description = "Made from the same aluminum alloy as our top-of-the line HL frame, the ML features a lightweight down-tube milled to the perfect diameter for optimal strength. Men's version.", Price = (decimal)594.83, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 733, Name = "ML Road Frame - Red, 52", ProductModel = "ML Road Frame", Description = "Made from the same aluminum alloy as our top-of-the line HL frame, the ML features a lightweight down-tube milled to the perfect diameter for optimal strength. Men's version.", Price = (decimal)594.83, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 734, Name = "ML Road Frame - Red, 58", ProductModel = "ML Road Frame", Description = "Made from the same aluminum alloy as our top-of-the line HL frame, the ML features a lightweight down-tube milled to the perfect diameter for optimal strength. Men's version.", Price = (decimal)594.83, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 735, Name = "ML Road Frame - Red, 60", ProductModel = "ML Road Frame", Description = "Made from the same aluminum alloy as our top-of-the line HL frame, the ML features a lightweight down-tube milled to the perfect diameter for optimal strength. Men's version.", Price = (decimal)594.83, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 736, Name = "LL Road Frame - Black, 44", ProductModel = "LL Road Frame", Description = "The LL Frame provides a safe comfortable ride, while offering superior bump absorption in a value-priced aluminum frame.", Price = (decimal)337.22, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 737, Name = "LL Road Frame - Black, 48", ProductModel = "LL Road Frame", Description = "The LL Frame provides a safe comfortable ride, while offering superior bump absorption in a value-priced aluminum frame.", Price = (decimal)337.22, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 738, Name = "LL Road Frame - Black, 52", ProductModel = "LL Road Frame", Description = "The LL Frame provides a safe comfortable ride, while offering superior bump absorption in a value-priced aluminum frame.", Price = (decimal)337.22, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 739, Name = "HL Mountain Frame - Silver, 42", ProductModel = "HL Mountain Frame", Description = "Each frame is hand-crafted in our Bothell facility to the optimum diameter and wall-thickness required of a premium mountain frame. The heat-treated welded aluminum frame has a larger diameter tube that absorbs the bumps.", Price = (decimal)1364.50, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 740, Name = "HL Mountain Frame - Silver, 44", ProductModel = "HL Mountain Frame", Description = "Each frame is hand-crafted in our Bothell facility to the optimum diameter and wall-thickness required of a premium mountain frame. The heat-treated welded aluminum frame has a larger diameter tube that absorbs the bumps.", Price = (decimal)1364.50, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 741, Name = "HL Mountain Frame - Silver, 48", ProductModel = "HL Mountain Frame", Description = "Each frame is hand-crafted in our Bothell facility to the optimum diameter and wall-thickness required of a premium mountain frame. The heat-treated welded aluminum frame has a larger diameter tube that absorbs the bumps.", Price = (decimal)1364.50, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 742, Name = "HL Mountain Frame - Silver, 46", ProductModel = "HL Mountain Frame", Description = "Each frame is hand-crafted in our Bothell facility to the optimum diameter and wall-thickness required of a premium mountain frame. The heat-treated welded aluminum frame has a larger diameter tube that absorbs the bumps.", Price = (decimal)1364.50, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 743, Name = "HL Mountain Frame - Black, 42", ProductModel = "HL Mountain Frame", Description = "Each frame is hand-crafted in our Bothell facility to the optimum diameter and wall-thickness required of a premium mountain frame. The heat-treated welded aluminum frame has a larger diameter tube that absorbs the bumps.", Price = (decimal)1349.60, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 744, Name = "HL Mountain Frame - Black, 44", ProductModel = "HL Mountain Frame", Description = "Each frame is hand-crafted in our Bothell facility to the optimum diameter and wall-thickness required of a premium mountain frame. The heat-treated welded aluminum frame has a larger diameter tube that absorbs the bumps.", Price = (decimal)1349.60, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 745, Name = "HL Mountain Frame - Black, 48", ProductModel = "HL Mountain Frame", Description = "Each frame is hand-crafted in our Bothell facility to the optimum diameter and wall-thickness required of a premium mountain frame. The heat-treated welded aluminum frame has a larger diameter tube that absorbs the bumps.", Price = (decimal)1349.60, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 746, Name = "HL Mountain Frame - Black, 46", ProductModel = "HL Mountain Frame", Description = "Each frame is hand-crafted in our Bothell facility to the optimum diameter and wall-thickness required of a premium mountain frame. The heat-treated welded aluminum frame has a larger diameter tube that absorbs the bumps.", Price = (decimal)1349.60, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 747, Name = "HL Mountain Frame - Black, 38", ProductModel = "HL Mountain Frame", Description = "Each frame is hand-crafted in our Bothell facility to the optimum diameter and wall-thickness required of a premium mountain frame. The heat-treated welded aluminum frame has a larger diameter tube that absorbs the bumps.", Price = (decimal)1349.60, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 748, Name = "HL Mountain Frame - Silver, 38", ProductModel = "HL Mountain Frame", Description = "Each frame is hand-crafted in our Bothell facility to the optimum diameter and wall-thickness required of a premium mountain frame. The heat-treated welded aluminum frame has a larger diameter tube that absorbs the bumps.", Price = (decimal)1364.50, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 749, Name = "Road-150 Red, 62", ProductModel = "Road-150", Description = "This bike is ridden by race winners. Developed with the Adventure Works Cycles professional race team, it has a extremely light heat-treated aluminum frame, and steering that allows precision control.", Price = (decimal)3578.27, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 750, Name = "Road-150 Red, 44", ProductModel = "Road-150", Description = "This bike is ridden by race winners. Developed with the Adventure Works Cycles professional race team, it has a extremely light heat-treated aluminum frame, and steering that allows precision control.", Price = (decimal)3578.27, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 751, Name = "Road-150 Red, 48", ProductModel = "Road-150", Description = "This bike is ridden by race winners. Developed with the Adventure Works Cycles professional race team, it has a extremely light heat-treated aluminum frame, and steering that allows precision control.", Price = (decimal)3578.27, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 752, Name = "Road-150 Red, 52", ProductModel = "Road-150", Description = "This bike is ridden by race winners. Developed with the Adventure Works Cycles professional race team, it has a extremely light heat-treated aluminum frame, and steering that allows precision control.", Price = (decimal)3578.27, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 753, Name = "Road-150 Red, 56", ProductModel = "Road-150", Description = "This bike is ridden by race winners. Developed with the Adventure Works Cycles professional race team, it has a extremely light heat-treated aluminum frame, and steering that allows precision control.", Price = (decimal)3578.27, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 754, Name = "Road-450 Red, 58", ProductModel = "Road-450", Description = "A true multi-sport bike that offers streamlined riding and a revolutionary design. Aerodynamic design lets you ride with the pros, and the gearing will conquer hilly roads.", Price = (decimal)1457.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 755, Name = "Road-450 Red, 60", ProductModel = "Road-450", Description = "A true multi-sport bike that offers streamlined riding and a revolutionary design. Aerodynamic design lets you ride with the pros, and the gearing will conquer hilly roads.", Price = (decimal)1457.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 756, Name = "Road-450 Red, 44", ProductModel = "Road-450", Description = "A true multi-sport bike that offers streamlined riding and a revolutionary design. Aerodynamic design lets you ride with the pros, and the gearing will conquer hilly roads.", Price = (decimal)1457.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 757, Name = "Road-450 Red, 48", ProductModel = "Road-450", Description = "A true multi-sport bike that offers streamlined riding and a revolutionary design. Aerodynamic design lets you ride with the pros, and the gearing will conquer hilly roads.", Price = (decimal)1457.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 758, Name = "Road-450 Red, 52", ProductModel = "Road-450", Description = "A true multi-sport bike that offers streamlined riding and a revolutionary design. Aerodynamic design lets you ride with the pros, and the gearing will conquer hilly roads.", Price = (decimal)1457.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 759, Name = "Road-650 Red, 58", ProductModel = "Road-650", Description = "Value-priced bike with many features of our top-of-the-line models. Has the same light, stiff frame, and the quick acceleration we're famous for.", Price = (decimal)782.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 760, Name = "Road-650 Red, 60", ProductModel = "Road-650", Description = "Value-priced bike with many features of our top-of-the-line models. Has the same light, stiff frame, and the quick acceleration we're famous for.", Price = (decimal)782.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 761, Name = "Road-650 Red, 62", ProductModel = "Road-650", Description = "Value-priced bike with many features of our top-of-the-line models. Has the same light, stiff frame, and the quick acceleration we're famous for.", Price = (decimal)782.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 762, Name = "Road-650 Red, 44", ProductModel = "Road-650", Description = "Value-priced bike with many features of our top-of-the-line models. Has the same light, stiff frame, and the quick acceleration we're famous for.", Price = (decimal)782.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 763, Name = "Road-650 Red, 48", ProductModel = "Road-650", Description = "Value-priced bike with many features of our top-of-the-line models. Has the same light, stiff frame, and the quick acceleration we're famous for.", Price = (decimal)782.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 764, Name = "Road-650 Red, 52", ProductModel = "Road-650", Description = "Value-priced bike with many features of our top-of-the-line models. Has the same light, stiff frame, and the quick acceleration we're famous for.", Price = (decimal)782.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 765, Name = "Road-650 Black, 58", ProductModel = "Road-650", Description = "Value-priced bike with many features of our top-of-the-line models. Has the same light, stiff frame, and the quick acceleration we're famous for.", Price = (decimal)782.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 766, Name = "Road-650 Black, 60", ProductModel = "Road-650", Description = "Value-priced bike with many features of our top-of-the-line models. Has the same light, stiff frame, and the quick acceleration we're famous for.", Price = (decimal)782.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 767, Name = "Road-650 Black, 62", ProductModel = "Road-650", Description = "Value-priced bike with many features of our top-of-the-line models. Has the same light, stiff frame, and the quick acceleration we're famous for.", Price = (decimal)782.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 768, Name = "Road-650 Black, 44", ProductModel = "Road-650", Description = "Value-priced bike with many features of our top-of-the-line models. Has the same light, stiff frame, and the quick acceleration we're famous for.", Price = (decimal)782.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 769, Name = "Road-650 Black, 48", ProductModel = "Road-650", Description = "Value-priced bike with many features of our top-of-the-line models. Has the same light, stiff frame, and the quick acceleration we're famous for.", Price = (decimal)782.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 770, Name = "Road-650 Black, 52", ProductModel = "Road-650", Description = "Value-priced bike with many features of our top-of-the-line models. Has the same light, stiff frame, and the quick acceleration we're famous for.", Price = (decimal)782.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 771, Name = "Mountain-100 Silver, 38", ProductModel = "Mountain-100", Description = "Top-of-the-line competition mountain bike. Performance-enhancing options include the innovative HL Frame, super-smooth front suspension, and traction for all terrain.", Price = (decimal)3399.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 772, Name = "Mountain-100 Silver, 42", ProductModel = "Mountain-100", Description = "Top-of-the-line competition mountain bike. Performance-enhancing options include the innovative HL Frame, super-smooth front suspension, and traction for all terrain.", Price = (decimal)3399.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 773, Name = "Mountain-100 Silver, 44", ProductModel = "Mountain-100", Description = "Top-of-the-line competition mountain bike. Performance-enhancing options include the innovative HL Frame, super-smooth front suspension, and traction for all terrain.", Price = (decimal)3399.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 774, Name = "Mountain-100 Silver, 48", ProductModel = "Mountain-100", Description = "Top-of-the-line competition mountain bike. Performance-enhancing options include the innovative HL Frame, super-smooth front suspension, and traction for all terrain.", Price = (decimal)3399.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 775, Name = "Mountain-100 Black, 38", ProductModel = "Mountain-100", Description = "Top-of-the-line competition mountain bike. Performance-enhancing options include the innovative HL Frame, super-smooth front suspension, and traction for all terrain.", Price = (decimal)3374.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 776, Name = "Mountain-100 Black, 42", ProductModel = "Mountain-100", Description = "Top-of-the-line competition mountain bike. Performance-enhancing options include the innovative HL Frame, super-smooth front suspension, and traction for all terrain.", Price = (decimal)3374.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 777, Name = "Mountain-100 Black, 44", ProductModel = "Mountain-100", Description = "Top-of-the-line competition mountain bike. Performance-enhancing options include the innovative HL Frame, super-smooth front suspension, and traction for all terrain.", Price = (decimal)3374.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 778, Name = "Mountain-100 Black, 48", ProductModel = "Mountain-100", Description = "Top-of-the-line competition mountain bike. Performance-enhancing options include the innovative HL Frame, super-smooth front suspension, and traction for all terrain.", Price = (decimal)3374.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 779, Name = "Mountain-200 Silver, 38", ProductModel = "Mountain-200", Description = "Serious back-country riding. Perfect for all levels of competition. Uses the same HL Frame as the Mountain-100.", Price = (decimal)2319.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 780, Name = "Mountain-200 Silver, 42", ProductModel = "Mountain-200", Description = "Serious back-country riding. Perfect for all levels of competition. Uses the same HL Frame as the Mountain-100.", Price = (decimal)2319.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 781, Name = "Mountain-200 Silver, 46", ProductModel = "Mountain-200", Description = "Serious back-country riding. Perfect for all levels of competition. Uses the same HL Frame as the Mountain-100.", Price = (decimal)2319.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 782, Name = "Mountain-200 Black, 38", ProductModel = "Mountain-200", Description = "Serious back-country riding. Perfect for all levels of competition. Uses the same HL Frame as the Mountain-100.", Price = (decimal)2294.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 783, Name = "Mountain-200 Black, 42", ProductModel = "Mountain-200", Description = "Serious back-country riding. Perfect for all levels of competition. Uses the same HL Frame as the Mountain-100.", Price = (decimal)2294.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 784, Name = "Mountain-200 Black, 46", ProductModel = "Mountain-200", Description = "Serious back-country riding. Perfect for all levels of competition. Uses the same HL Frame as the Mountain-100.", Price = (decimal)2294.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 785, Name = "Mountain-300 Black, 38", ProductModel = "Mountain-300", Description = "For true trail addicts.  An extremely durable bike that will go anywhere and keep you in control on challenging terrain - without breaking your budget.", Price = (decimal)1079.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 786, Name = "Mountain-300 Black, 40", ProductModel = "Mountain-300", Description = "For true trail addicts.  An extremely durable bike that will go anywhere and keep you in control on challenging terrain - without breaking your budget.", Price = (decimal)1079.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 787, Name = "Mountain-300 Black, 44", ProductModel = "Mountain-300", Description = "For true trail addicts.  An extremely durable bike that will go anywhere and keep you in control on challenging terrain - without breaking your budget.", Price = (decimal)1079.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 788, Name = "Mountain-300 Black, 48", ProductModel = "Mountain-300", Description = "For true trail addicts.  An extremely durable bike that will go anywhere and keep you in control on challenging terrain - without breaking your budget.", Price = (decimal)1079.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 789, Name = "Road-250 Red, 44", ProductModel = "Road-250", Description = "Alluminum-alloy frame provides a light, stiff ride, whether you are racing in the velodrome or on a demanding club ride on country roads.", Price = (decimal)2443.35, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 790, Name = "Road-250 Red, 48", ProductModel = "Road-250", Description = "Alluminum-alloy frame provides a light, stiff ride, whether you are racing in the velodrome or on a demanding club ride on country roads.", Price = (decimal)2443.35, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 791, Name = "Road-250 Red, 52", ProductModel = "Road-250", Description = "Alluminum-alloy frame provides a light, stiff ride, whether you are racing in the velodrome or on a demanding club ride on country roads.", Price = (decimal)2443.35, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 792, Name = "Road-250 Red, 58", ProductModel = "Road-250", Description = "Alluminum-alloy frame provides a light, stiff ride, whether you are racing in the velodrome or on a demanding club ride on country roads.", Price = (decimal)2443.35, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 793, Name = "Road-250 Black, 44", ProductModel = "Road-250", Description = "Alluminum-alloy frame provides a light, stiff ride, whether you are racing in the velodrome or on a demanding club ride on country roads.", Price = (decimal)2443.35, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 794, Name = "Road-250 Black, 48", ProductModel = "Road-250", Description = "Alluminum-alloy frame provides a light, stiff ride, whether you are racing in the velodrome or on a demanding club ride on country roads.", Price = (decimal)2443.35, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 795, Name = "Road-250 Black, 52", ProductModel = "Road-250", Description = "Alluminum-alloy frame provides a light, stiff ride, whether you are racing in the velodrome or on a demanding club ride on country roads.", Price = (decimal)2443.35, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 796, Name = "Road-250 Black, 58", ProductModel = "Road-250", Description = "Alluminum-alloy frame provides a light, stiff ride, whether you are racing in the velodrome or on a demanding club ride on country roads.", Price = (decimal)2443.35, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 797, Name = "Road-550-W Yellow, 38", ProductModel = "Road-550-W", Description = "Same technology as all of our Road series bikes, but the frame is sized for a woman.  Perfect all-around bike for road or racing.", Price = (decimal)1120.49, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 798, Name = "Road-550-W Yellow, 40", ProductModel = "Road-550-W", Description = "Same technology as all of our Road series bikes, but the frame is sized for a woman.  Perfect all-around bike for road or racing.", Price = (decimal)1120.49, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 799, Name = "Road-550-W Yellow, 42", ProductModel = "Road-550-W", Description = "Same technology as all of our Road series bikes, but the frame is sized for a woman.  Perfect all-around bike for road or racing.", Price = (decimal)1120.49, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 800, Name = "Road-550-W Yellow, 44", ProductModel = "Road-550-W", Description = "Same technology as all of our Road series bikes, but the frame is sized for a woman.  Perfect all-around bike for road or racing.", Price = (decimal)1120.49, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 801, Name = "Road-550-W Yellow, 48", ProductModel = "Road-550-W", Description = "Same technology as all of our Road series bikes, but the frame is sized for a woman.  Perfect all-around bike for road or racing.", Price = (decimal)1120.49, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 802, Name = "LL Fork", ProductModel = "LL Fork", Description = "Stout design absorbs shock and offers more precise steering.", Price = (decimal)148.22, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 803, Name = "ML Fork", ProductModel = "ML Fork", Description = "Composite road fork with an aluminum steerer tube.", Price = (decimal)175.49, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 804, Name = "HL Fork", ProductModel = "HL Fork", Description = "High-performance carbon road fork with curved legs.", Price = (decimal)229.49, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 805, Name = "LL Headset", ProductModel = "LL Headset", Description = "Threadless headset provides quality at an economical price.", Price = (decimal)34.20, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 806, Name = "ML Headset", ProductModel = "ML Headset", Description = "Sealed cartridge keeps dirt out.", Price = (decimal)102.29, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 807, Name = "HL Headset", ProductModel = "HL Headset", Description = "High-quality 1\" threadless headset with a grease port for quick lubrication.", Price = (decimal)124.73, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 808, Name = "LL Mountain Handlebars", ProductModel = "LL Mountain Handlebars", Description = "All-purpose bar for on or off-road.", Price = (decimal)44.54, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 809, Name = "ML Mountain Handlebars", ProductModel = "ML Mountain Handlebars", Description = "Tough aluminum alloy bars for downhill.", Price = (decimal)61.92, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 810, Name = "HL Mountain Handlebars", ProductModel = "HL Mountain Handlebars", Description = "Flat bar strong enough for the pro circuit.", Price = (decimal)120.27, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 811, Name = "LL Road Handlebars", ProductModel = "LL Road Handlebars", Description = "Unique shape provides easier reach to the levers.", Price = (decimal)44.54, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 812, Name = "ML Road Handlebars", ProductModel = "ML Road Handlebars", Description = "Anatomically shaped aluminum tube bar will suit all riders.", Price = (decimal)61.92, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 813, Name = "HL Road Handlebars", ProductModel = "HL Road Handlebars", Description = "Designed for racers; high-end anatomically shaped bar from aluminum alloy.", Price = (decimal)120.27, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 814, Name = "ML Mountain Frame - Black, 38", ProductModel = "ML Mountain Frame-W", Description = "The ML frame is a heat-treated aluminum frame made with the same detail and quality as our HL frame. It offers superior performance. Men's version.", Price = (decimal)348.76, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 815, Name = "LL Mountain Front Wheel", ProductModel = "LL Mountain Front Wheel", Description = "Replacement mountain wheel for entry-level rider.", Price = (decimal)60.75, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 816, Name = "ML Mountain Front Wheel", ProductModel = "ML Mountain Front Wheel", Description = "Replacement mountain wheel for the casual to serious rider.", Price = (decimal)209.03, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 817, Name = "HL Mountain Front Wheel", ProductModel = "HL Mountain Front Wheel", Description = "High-performance mountain replacement wheel.", Price = (decimal)300.22, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 818, Name = "LL Road Front Wheel", ProductModel = "LL Road Front Wheel", Description = "Replacement road front wheel for entry-level cyclist.", Price = (decimal)85.57, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 819, Name = "ML Road Front Wheel", ProductModel = "ML Road Front Wheel", Description = "Sturdy alloy features a quick-release hub.", Price = (decimal)248.39, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 820, Name = "HL Road Front Wheel", ProductModel = "HL Road Front Wheel", Description = "Strong wheel with double-walled rim.", Price = (decimal)330.06, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 821, Name = "Touring Front Wheel", ProductModel = "Touring Front Wheel", Description = "Aerodynamic rims for smooth riding.", Price = (decimal)218.01, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 822, Name = "ML Road Frame-W - Yellow, 38", ProductModel = "ML Road Frame-W", Description = "Made from the same aluminum alloy as our top-of-the line HL frame, the ML features a lightweight down-tube milled to the perfect diameter for optimal strength. Women's version.", Price = (decimal)594.83, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 823, Name = "LL Mountain Rear Wheel", ProductModel = "LL Mountain Rear Wheel", Description = "Replacement mountain wheel for entry-level rider.", Price = (decimal)87.75, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 824, Name = "ML Mountain Rear Wheel", ProductModel = "ML Mountain Rear Wheel", Description = "Replacement mountain wheel for the casual to serious rider.", Price = (decimal)236.03, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 825, Name = "HL Mountain Rear Wheel", ProductModel = "HL Mountain Rear Wheel", Description = "High-performance mountain replacement wheel.", Price = (decimal)327.22, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 826, Name = "LL Road Rear Wheel", ProductModel = "LL Road Rear Wheel", Description = "Replacement road rear wheel for entry-level cyclist.", Price = (decimal)112.57, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 827, Name = "ML Road Rear Wheel", ProductModel = "ML Road Rear Wheel", Description = "Aluminum alloy rim with stainless steel spokes; built for speed.", Price = (decimal)275.39, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 828, Name = "HL Road Rear Wheel", ProductModel = "HL Road Rear Wheel", Description = "Strong rear wheel with double-walled rim.", Price = (decimal)357.06, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 829, Name = "Touring Rear Wheel", ProductModel = "Touring Rear Wheel", Description = "Excellent aerodynamic rims guarantee a smooth ride.", Price = (decimal)245.01, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 830, Name = "ML Mountain Frame - Black, 40", ProductModel = "ML Mountain Frame", Description = "The ML frame is a heat-treated aluminum frame made with the same detail and quality as our HL frame. It offers superior performance. Women's version.", Price = (decimal)348.76, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 831, Name = "ML Mountain Frame - Black, 44", ProductModel = "ML Mountain Frame", Description = "The ML frame is a heat-treated aluminum frame made with the same detail and quality as our HL frame. It offers superior performance. Women's version.", Price = (decimal)348.76, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 832, Name = "ML Mountain Frame - Black, 48", ProductModel = "ML Mountain Frame", Description = "The ML frame is a heat-treated aluminum frame made with the same detail and quality as our HL frame. It offers superior performance. Women's version.", Price = (decimal)348.76, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 833, Name = "ML Road Frame-W - Yellow, 40", ProductModel = "ML Road Frame-W", Description = "Made from the same aluminum alloy as our top-of-the line HL frame, the ML features a lightweight down-tube milled to the perfect diameter for optimal strength. Women's version.", Price = (decimal)594.83, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 834, Name = "ML Road Frame-W - Yellow, 42", ProductModel = "ML Road Frame-W", Description = "Made from the same aluminum alloy as our top-of-the line HL frame, the ML features a lightweight down-tube milled to the perfect diameter for optimal strength. Women's version.", Price = (decimal)594.83, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 835, Name = "ML Road Frame-W - Yellow, 44", ProductModel = "ML Road Frame-W", Description = "Made from the same aluminum alloy as our top-of-the line HL frame, the ML features a lightweight down-tube milled to the perfect diameter for optimal strength. Women's version.", Price = (decimal)594.83, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 836, Name = "ML Road Frame-W - Yellow, 48", ProductModel = "ML Road Frame-W", Description = "Made from the same aluminum alloy as our top-of-the line HL frame, the ML features a lightweight down-tube milled to the perfect diameter for optimal strength. Women's version.", Price = (decimal)594.83, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 837, Name = "HL Road Frame - Black, 62", ProductModel = "HL Road Frame", Description = "Our lightest and best quality aluminum frame made from the newest alloy; it is welded and heat-treated for strength. Our innovative design results in maximum comfort and performance.", Price = (decimal)1431.50, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 838, Name = "HL Road Frame - Black, 44", ProductModel = "HL Road Frame", Description = "Our lightest and best quality aluminum frame made from the newest alloy; it is welded and heat-treated for strength. Our innovative design results in maximum comfort and performance.", Price = (decimal)1431.50, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 839, Name = "HL Road Frame - Black, 48", ProductModel = "HL Road Frame", Description = "Our lightest and best quality aluminum frame made from the newest alloy; it is welded and heat-treated for strength. Our innovative design results in maximum comfort and performance.", Price = (decimal)1431.50, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 840, Name = "HL Road Frame - Black, 52", ProductModel = "HL Road Frame", Description = "Our lightest and best quality aluminum frame made from the newest alloy; it is welded and heat-treated for strength. Our innovative design results in maximum comfort and performance.", Price = (decimal)1431.50, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 841, Name = "Men's Sports Shorts, S", ProductModel = "Men's Sports Shorts", Description = "Men's 8-panel racing shorts - lycra with an elastic waistband and leg grippers.", Price = (decimal)59.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 842, Name = "Touring-Panniers, Large", ProductModel = "Touring-Panniers", Description = "Durable, water-proof nylon construction with easy access. Large enough for weekend trips.", Price = (decimal)125.00, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 843, Name = "Cable Lock", ProductModel = "Cable Lock", Description = "Wraps to fit front and rear tires, carrier and 2 keys included.", Price = (decimal)25.00, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 844, Name = "Minipump", ProductModel = "Minipump", Description = "Designed for convenience. Fits in your pocket. Aluminum barrel. 160psi rated.", Price = (decimal)19.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 845, Name = "Mountain Pump", ProductModel = "Mountain Pump", Description = "Simple and light-weight. Emergency patches stored in handle.", Price = (decimal)24.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 846, Name = "Taillights - Battery-Powered", ProductModel = "Taillight", Description = "Affordable light for safe night riding - uses 3 AAA batteries", Price = (decimal)13.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 847, Name = "Headlights - Dual-Beam", ProductModel = "Headlights - Dual-Beam", Description = "Rechargeable dual-beam headlight.", Price = (decimal)34.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 848, Name = "Headlights - Weatherproof", ProductModel = "Headlights - Weatherproof", Description = "Rugged weatherproof headlight.", Price = (decimal)44.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 849, Name = "Men's Sports Shorts, M", ProductModel = "Men's Sports Shorts", Description = "Men's 8-panel racing shorts - lycra with an elastic waistband and leg grippers.", Price = (decimal)59.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 850, Name = "Men's Sports Shorts, L", ProductModel = "Men's Sports Shorts", Description = "Men's 8-panel racing shorts - lycra with an elastic waistband and leg grippers.", Price = (decimal)59.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 851, Name = "Men's Sports Shorts, XL", ProductModel = "Men's Sports Shorts", Description = "Men's 8-panel racing shorts - lycra with an elastic waistband and leg grippers.", Price = (decimal)59.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 852, Name = "Women's Tights, S", ProductModel = "Women's Tights", Description = "Warm spandex tights for winter riding; seamless chamois construction eliminates pressure points.", Price = (decimal)74.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 853, Name = "Women's Tights, M", ProductModel = "Women's Tights", Description = "Warm spandex tights for winter riding; seamless chamois construction eliminates pressure points.", Price = (decimal)74.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 854, Name = "Women's Tights, L", ProductModel = "Women's Tights", Description = "Warm spandex tights for winter riding; seamless chamois construction eliminates pressure points.", Price = (decimal)74.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 855, Name = "Men's Bib-Shorts, S", ProductModel = "Men's Bib-Shorts", Description = "Designed for the AWC team with stay-put straps, moisture-control, chamois padding, and leg grippers.", Price = (decimal)89.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 856, Name = "Men's Bib-Shorts, M", ProductModel = "Men's Bib-Shorts", Description = "Designed for the AWC team with stay-put straps, moisture-control, chamois padding, and leg grippers.", Price = (decimal)89.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 857, Name = "Men's Bib-Shorts, L", ProductModel = "Men's Bib-Shorts", Description = "Designed for the AWC team with stay-put straps, moisture-control, chamois padding, and leg grippers.", Price = (decimal)89.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 858, Name = "Half-Finger Gloves, S", ProductModel = "Half-Finger Gloves", Description = "Full padding, improved finger flex, durable palm, adjustable closure.", Price = (decimal)24.49, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 859, Name = "Half-Finger Gloves, M", ProductModel = "Half-Finger Gloves", Description = "Full padding, improved finger flex, durable palm, adjustable closure.", Price = (decimal)24.49, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 860, Name = "Half-Finger Gloves, L", ProductModel = "Half-Finger Gloves", Description = "Full padding, improved finger flex, durable palm, adjustable closure.", Price = (decimal)24.49, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 861, Name = "Full-Finger Gloves, S", ProductModel = "Full-Finger Gloves", Description = "Synthetic palm, flexible knuckles, breathable mesh upper. Worn by the AWC team riders.", Price = (decimal)37.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 862, Name = "Full-Finger Gloves, M", ProductModel = "Full-Finger Gloves", Description = "Synthetic palm, flexible knuckles, breathable mesh upper. Worn by the AWC team riders.", Price = (decimal)37.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 863, Name = "Full-Finger Gloves, L", ProductModel = "Full-Finger Gloves", Description = "Synthetic palm, flexible knuckles, breathable mesh upper. Worn by the AWC team riders.", Price = (decimal)37.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 864, Name = "Classic Vest, S", ProductModel = "Classic Vest", Description = "Light-weight, wind-resistant, packs to fit into a pocket.", Price = (decimal)63.50, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 865, Name = "Classic Vest, M", ProductModel = "Classic Vest", Description = "Light-weight, wind-resistant, packs to fit into a pocket.", Price = (decimal)63.50, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 866, Name = "Classic Vest, L", ProductModel = "Classic Vest", Description = "Light-weight, wind-resistant, packs to fit into a pocket.", Price = (decimal)63.50, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 867, Name = "Women's Mountain Shorts, S", ProductModel = "Women's Mountain Shorts", Description = "Heavy duty, abrasion-resistant shorts feature seamless, lycra inner shorts with anti-bacterial chamois for comfort.", Price = (decimal)69.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 868, Name = "Women's Mountain Shorts, M", ProductModel = "Women's Mountain Shorts", Description = "Heavy duty, abrasion-resistant shorts feature seamless, lycra inner shorts with anti-bacterial chamois for comfort.", Price = (decimal)69.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 869, Name = "Women's Mountain Shorts, L", ProductModel = "Women's Mountain Shorts", Description = "Heavy duty, abrasion-resistant shorts feature seamless, lycra inner shorts with anti-bacterial chamois for comfort.", Price = (decimal)69.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 870, Name = "Water Bottle - 30 oz.", ProductModel = "Water Bottle", Description = "AWC logo water bottle - holds 30 oz; leak-proof.", Price = (decimal)4.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 871, Name = "Mountain Bottle Cage", ProductModel = "Mountain Bottle Cage", Description = "Tough aluminum cage holds bottle securly on tough terrain.", Price = (decimal)9.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 872, Name = "Road Bottle Cage", ProductModel = "Road Bottle Cage", Description = "Aluminum cage is lighter than our mountain version; perfect for long distance trips.", Price = (decimal)8.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 873, Name = "Patch Kit/8 Patches", ProductModel = "Patch kit", Description = "Includes 8 different size patches, glue and sandpaper.", Price = (decimal)2.29, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 874, Name = "Racing Socks, M", ProductModel = "Racing Socks", Description = "Thin, lightweight and durable with cuffs that stay up.", Price = (decimal)8.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 875, Name = "Racing Socks, L", ProductModel = "Racing Socks", Description = "Thin, lightweight and durable with cuffs that stay up.", Price = (decimal)8.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 876, Name = "Hitch Rack - 4-Bike", ProductModel = "Hitch Rack - 4-Bike", Description = "Carries 4 bikes securely; steel construction, fits 2\" receiver hitch.", Price = (decimal)120.00, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 877, Name = "Bike Wash - Dissolver", ProductModel = "Bike Wash", Description = "Washes off the toughest road grime; dissolves grease, environmentally safe. 1-liter bottle.", Price = (decimal)7.95, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 878, Name = "Fender Set - Mountain", ProductModel = "Fender Set - Mountain", Description = "Clip-on fenders fit most mountain bikes.", Price = (decimal)21.98, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 879, Name = "All-Purpose Bike Stand", ProductModel = "All-Purpose Bike Stand", Description = "Perfect all-purpose bike stand for working on your bike at home. Quick-adjusting clamps and steel construction.", Price = (decimal)159.00, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 880, Name = "Hydration Pack - 70 oz.", ProductModel = "Hydration Pack", Description = "Versatile 70 oz hydration pack offers extra storage, easy-fill access, and a waist belt.", Price = (decimal)54.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 881, Name = "Short-Sleeve Classic Jersey, S", ProductModel = "Short-Sleeve Classic Jersey", Description = "Short sleeve classic breathable jersey with superior moisture control, front zipper, and 3 back pockets.", Price = (decimal)53.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 882, Name = "Short-Sleeve Classic Jersey, M", ProductModel = "Short-Sleeve Classic Jersey", Description = "Short sleeve classic breathable jersey with superior moisture control, front zipper, and 3 back pockets.", Price = (decimal)53.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 883, Name = "Short-Sleeve Classic Jersey, L", ProductModel = "Short-Sleeve Classic Jersey", Description = "Short sleeve classic breathable jersey with superior moisture control, front zipper, and 3 back pockets.", Price = (decimal)53.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 884, Name = "Short-Sleeve Classic Jersey, XL", ProductModel = "Short-Sleeve Classic Jersey", Description = "Short sleeve classic breathable jersey with superior moisture control, front zipper, and 3 back pockets.", Price = (decimal)53.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 885, Name = "HL Touring Frame - Yellow, 60", ProductModel = "HL Touring Frame", Description = "The HL aluminum frame is custom-shaped for both good looks and strength; it will withstand the most rigorous challenges of daily riding. Men's version.", Price = (decimal)1003.91, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 886, Name = "LL Touring Frame - Yellow, 62", ProductModel = "LL Touring Frame", Description = "Lightweight butted aluminum frame provides a more upright riding position for a trip around town.  Our ground-breaking design provides optimum comfort.", Price = (decimal)333.42, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 887, Name = "HL Touring Frame - Yellow, 46", ProductModel = "HL Touring Frame", Description = "The HL aluminum frame is custom-shaped for both good looks and strength; it will withstand the most rigorous challenges of daily riding. Men's version.", Price = (decimal)1003.91, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 888, Name = "HL Touring Frame - Yellow, 50", ProductModel = "HL Touring Frame", Description = "The HL aluminum frame is custom-shaped for both good looks and strength; it will withstand the most rigorous challenges of daily riding. Men's version.", Price = (decimal)1003.91, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 889, Name = "HL Touring Frame - Yellow, 54", ProductModel = "HL Touring Frame", Description = "The HL aluminum frame is custom-shaped for both good looks and strength; it will withstand the most rigorous challenges of daily riding. Men's version.", Price = (decimal)1003.91, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 890, Name = "HL Touring Frame - Blue, 46", ProductModel = "HL Touring Frame", Description = "The HL aluminum frame is custom-shaped for both good looks and strength; it will withstand the most rigorous challenges of daily riding. Men's version.", Price = (decimal)1003.91, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 891, Name = "HL Touring Frame - Blue, 50", ProductModel = "HL Touring Frame", Description = "The HL aluminum frame is custom-shaped for both good looks and strength; it will withstand the most rigorous challenges of daily riding. Men's version.", Price = (decimal)1003.91, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 892, Name = "HL Touring Frame - Blue, 54", ProductModel = "HL Touring Frame", Description = "The HL aluminum frame is custom-shaped for both good looks and strength; it will withstand the most rigorous challenges of daily riding. Men's version.", Price = (decimal)1003.91, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 893, Name = "HL Touring Frame - Blue, 60", ProductModel = "HL Touring Frame", Description = "The HL aluminum frame is custom-shaped for both good looks and strength; it will withstand the most rigorous challenges of daily riding. Men's version.", Price = (decimal)1003.91, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 894, Name = "Rear Derailleur", ProductModel = "Rear Derailleur", Description = "Wide-link design.", Price = (decimal)121.46, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 895, Name = "LL Touring Frame - Blue, 50", ProductModel = "LL Touring Frame", Description = "Lightweight butted aluminum frame provides a more upright riding position for a trip around town.  Our ground-breaking design provides optimum comfort.", Price = (decimal)333.42, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 896, Name = "LL Touring Frame - Blue, 54", ProductModel = "LL Touring Frame", Description = "Lightweight butted aluminum frame provides a more upright riding position for a trip around town.  Our ground-breaking design provides optimum comfort.", Price = (decimal)333.42, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 897, Name = "LL Touring Frame - Blue, 58", ProductModel = "LL Touring Frame", Description = "Lightweight butted aluminum frame provides a more upright riding position for a trip around town.  Our ground-breaking design provides optimum comfort.", Price = (decimal)333.42, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 898, Name = "LL Touring Frame - Blue, 62", ProductModel = "LL Touring Frame", Description = "Lightweight butted aluminum frame provides a more upright riding position for a trip around town.  Our ground-breaking design provides optimum comfort.", Price = (decimal)333.42, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 899, Name = "LL Touring Frame - Yellow, 44", ProductModel = "LL Touring Frame", Description = "Lightweight butted aluminum frame provides a more upright riding position for a trip around town.  Our ground-breaking design provides optimum comfort.", Price = (decimal)333.42, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 900, Name = "LL Touring Frame - Yellow, 50", ProductModel = "LL Touring Frame", Description = "Lightweight butted aluminum frame provides a more upright riding position for a trip around town.  Our ground-breaking design provides optimum comfort.", Price = (decimal)333.42, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 901, Name = "LL Touring Frame - Yellow, 54", ProductModel = "LL Touring Frame", Description = "Lightweight butted aluminum frame provides a more upright riding position for a trip around town.  Our ground-breaking design provides optimum comfort.", Price = (decimal)333.42, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 902, Name = "LL Touring Frame - Yellow, 58", ProductModel = "LL Touring Frame", Description = "Lightweight butted aluminum frame provides a more upright riding position for a trip around town.  Our ground-breaking design provides optimum comfort.", Price = (decimal)333.42, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 903, Name = "LL Touring Frame - Blue, 44", ProductModel = "LL Touring Frame", Description = "Lightweight butted aluminum frame provides a more upright riding position for a trip around town.  Our ground-breaking design provides optimum comfort.", Price = (decimal)333.42, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 904, Name = "ML Mountain Frame-W - Silver, 40", ProductModel = "ML Mountain Frame-W", Description = "The ML frame is a heat-treated aluminum frame made with the same detail and quality as our HL frame. It offers superior performance. Men's version.", Price = (decimal)364.09, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 905, Name = "ML Mountain Frame-W - Silver, 42", ProductModel = "ML Mountain Frame-W", Description = "The ML frame is a heat-treated aluminum frame made with the same detail and quality as our HL frame. It offers superior performance. Men's version.", Price = (decimal)364.09, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 906, Name = "ML Mountain Frame-W - Silver, 46", ProductModel = "ML Mountain Frame-W", Description = "The ML frame is a heat-treated aluminum frame made with the same detail and quality as our HL frame. It offers superior performance. Men's version.", Price = (decimal)364.09, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 908, Name = "LL Mountain Seat/Saddle", ProductModel = "LL Mountain Seat/Saddle 2", Description = "Synthetic leather. Features gel for increased comfort.", Price = (decimal)27.12, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 909, Name = "ML Mountain Seat/Saddle", ProductModel = "ML Mountain Seat/Saddle 2", Description = "Designed to absorb shock.", Price = (decimal)39.14, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 910, Name = "HL Mountain Seat/Saddle", ProductModel = "HL Mountain Seat/Saddle 2", Description = "Anatomic design for a full-day of riding in comfort. Durable leather.", Price = (decimal)52.64, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 911, Name = "LL Road Seat/Saddle", ProductModel = "LL Road Seat/Saddle 1", Description = "Lightweight foam-padded saddle.", Price = (decimal)27.12, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 912, Name = "ML Road Seat/Saddle", ProductModel = "ML Road Seat/Saddle 2", Description = "Rubber bumpers absorb bumps.", Price = (decimal)39.14, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 913, Name = "HL Road Seat/Saddle", ProductModel = "HL Road Seat/Saddle 2", Description = "Lightweight kevlar racing saddle. Leather.", Price = (decimal)52.64, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 914, Name = "LL Touring Seat/Saddle", ProductModel = "LL Touring Seat/Saddle", Description = "Comfortable, ergonomically shaped gel saddle.", Price = (decimal)27.12, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 915, Name = "ML Touring Seat/Saddle", ProductModel = "ML Touring Seat/Saddle", Description = "New design relieves pressure for long rides.", Price = (decimal)39.14, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 916, Name = "HL Touring Seat/Saddle", ProductModel = "HL Touring Seat/Saddle", Description = "Cut-out shell for a more comfortable ride.", Price = (decimal)52.64, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 917, Name = "LL Mountain Frame - Silver, 42", ProductModel = "LL Mountain Frame", Description = "Our best value utilizing the same, ground-breaking frame technology as the ML aluminum frame.", Price = (decimal)264.05, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 918, Name = "LL Mountain Frame - Silver, 44", ProductModel = "LL Mountain Frame", Description = "Our best value utilizing the same, ground-breaking frame technology as the ML aluminum frame.", Price = (decimal)264.05, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 919, Name = "LL Mountain Frame - Silver, 48", ProductModel = "LL Mountain Frame", Description = "Our best value utilizing the same, ground-breaking frame technology as the ML aluminum frame.", Price = (decimal)264.05, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 920, Name = "LL Mountain Frame - Silver, 52", ProductModel = "LL Mountain Frame", Description = "Our best value utilizing the same, ground-breaking frame technology as the ML aluminum frame.", Price = (decimal)264.05, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 921, Name = "Mountain Tire Tube", ProductModel = "Mountain Tire Tube", Description = "Self-sealing tube.", Price = (decimal)4.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 922, Name = "Road Tire Tube", ProductModel = "Road Tire Tube", Description = "Conventional all-purpose tube.", Price = (decimal)3.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 923, Name = "Touring Tire Tube", ProductModel = "Touring Tire Tube", Description = "General purpose tube.", Price = (decimal)4.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 924, Name = "LL Mountain Frame - Black, 42", ProductModel = "LL Mountain Frame", Description = "Our best value utilizing the same, ground-breaking frame technology as the ML aluminum frame.", Price = (decimal)249.79, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 925, Name = "LL Mountain Frame - Black, 44", ProductModel = "LL Mountain Frame", Description = "Our best value utilizing the same, ground-breaking frame technology as the ML aluminum frame.", Price = (decimal)249.79, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 926, Name = "LL Mountain Frame - Black, 48", ProductModel = "LL Mountain Frame", Description = "Our best value utilizing the same, ground-breaking frame technology as the ML aluminum frame.", Price = (decimal)249.79, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 927, Name = "LL Mountain Frame - Black, 52", ProductModel = "LL Mountain Frame", Description = "Our best value utilizing the same, ground-breaking frame technology as the ML aluminum frame.", Price = (decimal)249.79, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 928, Name = "LL Mountain Tire", ProductModel = "LL Mountain Tire", Description = "Comparible traction, less expensive wire bead casing.", Price = (decimal)24.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 929, Name = "ML Mountain Tire", ProductModel = "ML Mountain Tire", Description = "Great traction, high-density rubber.", Price = (decimal)29.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 930, Name = "HL Mountain Tire", ProductModel = "HL Mountain Tire", Description = "Incredible traction, lightweight carbon reinforced.", Price = (decimal)35.00, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 931, Name = "LL Road Tire", ProductModel = "LL Road Tire", Description = "Same great treads as more expensive tire with a less expensive wire bead casing.", Price = (decimal)21.49, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 932, Name = "ML Road Tire", ProductModel = "ML Road Tire", Description = "Higher density rubber.", Price = (decimal)24.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 933, Name = "HL Road Tire", ProductModel = "HL Road Tire", Description = "Lightweight carbon reinforced  for an unrivaled ride at an un-compromised weight.", Price = (decimal)32.60, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 934, Name = "Touring Tire", ProductModel = "Touring Tire", Description = "High-density rubber.", Price = (decimal)28.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 935, Name = "LL Mountain Pedal", ProductModel = "LL Mountain Pedal", Description = "Expanded platform so you can ride in any shoes; great for all-around riding.", Price = (decimal)40.49, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 936, Name = "ML Mountain Pedal", ProductModel = "ML Mountain Pedal", Description = "Lightweight, durable, clipless pedal with adjustable tension.", Price = (decimal)62.09, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 937, Name = "HL Mountain Pedal", ProductModel = "HL Mountain Pedal", Description = "Stainless steel; designed to shed mud easily.", Price = (decimal)80.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 938, Name = "LL Road Pedal", ProductModel = "LL Road Pedal", Description = "Clipless pedals - aluminum.", Price = (decimal)40.49, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 939, Name = "ML Road Pedal", ProductModel = "ML Road Pedal", Description = "Lightweight aluminum alloy construction.", Price = (decimal)62.09, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 940, Name = "HL Road Pedal", ProductModel = "HL Road Pedal", Description = "Top-of-the-line clipless pedals with adjustable tension.", Price = (decimal)80.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 941, Name = "Touring Pedal", ProductModel = "Touring Pedal", Description = "A stable pedal for all-day riding.", Price = (decimal)80.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 942, Name = "ML Mountain Frame-W - Silver, 38", ProductModel = "ML Mountain Frame-W", Description = "The ML frame is a heat-treated aluminum frame made with the same detail and quality as our HL frame. It offers superior performance. Men's version.", Price = (decimal)364.09, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 943, Name = "LL Mountain Frame - Black, 40", ProductModel = "LL Mountain Frame", Description = "Our best value utilizing the same, ground-breaking frame technology as the ML aluminum frame.", Price = (decimal)249.79, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 944, Name = "LL Mountain Frame - Silver, 40", ProductModel = "LL Mountain Frame", Description = "Our best value utilizing the same, ground-breaking frame technology as the ML aluminum frame.", Price = (decimal)264.05, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 945, Name = "Front Derailleur", ProductModel = "Front Derailleur", Description = "Wide-link design.", Price = (decimal)91.49, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 946, Name = "LL Touring Handlebars", ProductModel = "LL Touring Handlebars", Description = "Unique shape reduces fatigue for entry level riders.", Price = (decimal)46.09, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 947, Name = "HL Touring Handlebars", ProductModel = "HL Touring Handlebars", Description = "A light yet stiff aluminum bar for long distance riding.", Price = (decimal)91.57, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 948, Name = "Front Brakes", ProductModel = "Front Brakes", Description = "All-weather brake pads; provides superior stopping by applying more surface to the rim.", Price = (decimal)106.50, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 949, Name = "LL Crankset", ProductModel = "LL Crankset", Description = "Super rigid spindle.", Price = (decimal)175.49, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 950, Name = "ML Crankset", ProductModel = "ML Crankset", Description = "High-strength crank arm.", Price = (decimal)256.49, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 951, Name = "HL Crankset", ProductModel = "HL Crankset", Description = "Triple crankset; alumunim crank arm; flawless shifting.", Price = (decimal)404.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 952, Name = "Chain", ProductModel = "Chain", Description = "Superior shifting performance.", Price = (decimal)20.24, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 953, Name = "Touring-2000 Blue, 60", ProductModel = "Touring-2000", Description = "The plush custom saddle keeps you riding all day,  and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier.  This bike has stability when fully-loaded.", Price = (decimal)1214.85, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 954, Name = "Touring-1000 Yellow, 46", ProductModel = "Touring-1000", Description = "Travel in style and comfort. Designed for maximum comfort and safety. Wide gear range takes on all hills. High-tech aluminum alloy construction provides durability without added weight.", Price = (decimal)2384.07, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 955, Name = "Touring-1000 Yellow, 50", ProductModel = "Touring-1000", Description = "Travel in style and comfort. Designed for maximum comfort and safety. Wide gear range takes on all hills. High-tech aluminum alloy construction provides durability without added weight.", Price = (decimal)2384.07, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 956, Name = "Touring-1000 Yellow, 54", ProductModel = "Touring-1000", Description = "Travel in style and comfort. Designed for maximum comfort and safety. Wide gear range takes on all hills. High-tech aluminum alloy construction provides durability without added weight.", Price = (decimal)2384.07, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 957, Name = "Touring-1000 Yellow, 60", ProductModel = "Touring-1000", Description = "Travel in style and comfort. Designed for maximum comfort and safety. Wide gear range takes on all hills. High-tech aluminum alloy construction provides durability without added weight.", Price = (decimal)2384.07, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 958, Name = "Touring-3000 Blue, 54", ProductModel = "Touring-3000", Description = "All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip.", Price = (decimal)742.35, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 959, Name = "Touring-3000 Blue, 58", ProductModel = "Touring-3000", Description = "All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip.", Price = (decimal)742.35, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 960, Name = "Touring-3000 Blue, 62", ProductModel = "Touring-3000", Description = "All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip.", Price = (decimal)742.35, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 961, Name = "Touring-3000 Yellow, 44", ProductModel = "Touring-3000", Description = "All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip.", Price = (decimal)742.35, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 962, Name = "Touring-3000 Yellow, 50", ProductModel = "Touring-3000", Description = "All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip.", Price = (decimal)742.35, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 963, Name = "Touring-3000 Yellow, 54", ProductModel = "Touring-3000", Description = "All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip.", Price = (decimal)742.35, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 964, Name = "Touring-3000 Yellow, 58", ProductModel = "Touring-3000", Description = "All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip.", Price = (decimal)742.35, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 965, Name = "Touring-3000 Yellow, 62", ProductModel = "Touring-3000", Description = "All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip.", Price = (decimal)742.35, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 966, Name = "Touring-1000 Blue, 46", ProductModel = "Touring-1000", Description = "Travel in style and comfort. Designed for maximum comfort and safety. Wide gear range takes on all hills. High-tech aluminum alloy construction provides durability without added weight.", Price = (decimal)2384.07, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 967, Name = "Touring-1000 Blue, 50", ProductModel = "Touring-1000", Description = "Travel in style and comfort. Designed for maximum comfort and safety. Wide gear range takes on all hills. High-tech aluminum alloy construction provides durability without added weight.", Price = (decimal)2384.07, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 968, Name = "Touring-1000 Blue, 54", ProductModel = "Touring-1000", Description = "Travel in style and comfort. Designed for maximum comfort and safety. Wide gear range takes on all hills. High-tech aluminum alloy construction provides durability without added weight.", Price = (decimal)2384.07, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 969, Name = "Touring-1000 Blue, 60", ProductModel = "Touring-1000", Description = "Travel in style and comfort. Designed for maximum comfort and safety. Wide gear range takes on all hills. High-tech aluminum alloy construction provides durability without added weight.", Price = (decimal)2384.07, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 970, Name = "Touring-2000 Blue, 46", ProductModel = "Touring-2000", Description = "The plush custom saddle keeps you riding all day,  and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier.  This bike has stability when fully-loaded.", Price = (decimal)1214.85, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 971, Name = "Touring-2000 Blue, 50", ProductModel = "Touring-2000", Description = "The plush custom saddle keeps you riding all day,  and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier.  This bike has stability when fully-loaded.", Price = (decimal)1214.85, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 972, Name = "Touring-2000 Blue, 54", ProductModel = "Touring-2000", Description = "The plush custom saddle keeps you riding all day,  and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier.  This bike has stability when fully-loaded.", Price = (decimal)1214.85, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 973, Name = "Road-350-W Yellow, 40", ProductModel = "Road-350-W", Description = "Cross-train, race, or just socialize on a sleek, aerodynamic bike designed for a woman.  Advanced seat technology provides comfort all day.", Price = (decimal)1700.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 974, Name = "Road-350-W Yellow, 42", ProductModel = "Road-350-W", Description = "Cross-train, race, or just socialize on a sleek, aerodynamic bike designed for a woman.  Advanced seat technology provides comfort all day.", Price = (decimal)1700.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 975, Name = "Road-350-W Yellow, 44", ProductModel = "Road-350-W", Description = "Cross-train, race, or just socialize on a sleek, aerodynamic bike designed for a woman.  Advanced seat technology provides comfort all day.", Price = (decimal)1700.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 976, Name = "Road-350-W Yellow, 48", ProductModel = "Road-350-W", Description = "Cross-train, race, or just socialize on a sleek, aerodynamic bike designed for a woman.  Advanced seat technology provides comfort all day.", Price = (decimal)1700.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 977, Name = "Road-750 Black, 58", ProductModel = "Road-750", Description = "Entry level adult bike; offers a comfortable ride cross-country or down the block. Quick-release hubs and rims.", Price = (decimal)539.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 978, Name = "Touring-3000 Blue, 44", ProductModel = "Touring-3000", Description = "All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip.", Price = (decimal)742.35, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 979, Name = "Touring-3000 Blue, 50", ProductModel = "Touring-3000", Description = "All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip.", Price = (decimal)742.35, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 980, Name = "Mountain-400-W Silver, 38", ProductModel = "Mountain-400-W", Description = "This bike delivers a high-level of performance on a budget. It is responsive and maneuverable, and offers peace-of-mind when you decide to go off-road.", Price = (decimal)769.49, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 981, Name = "Mountain-400-W Silver, 40", ProductModel = "Mountain-400-W", Description = "This bike delivers a high-level of performance on a budget. It is responsive and maneuverable, and offers peace-of-mind when you decide to go off-road.", Price = (decimal)769.49, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 982, Name = "Mountain-400-W Silver, 42", ProductModel = "Mountain-400-W", Description = "This bike delivers a high-level of performance on a budget. It is responsive and maneuverable, and offers peace-of-mind when you decide to go off-road.", Price = (decimal)769.49, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 983, Name = "Mountain-400-W Silver, 46", ProductModel = "Mountain-400-W", Description = "This bike delivers a high-level of performance on a budget. It is responsive and maneuverable, and offers peace-of-mind when you decide to go off-road.", Price = (decimal)769.49, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 984, Name = "Mountain-500 Silver, 40", ProductModel = "Mountain-500", Description = "Suitable for any type of riding, on or off-road. Fits any budget. Smooth-shifting with a comfortable ride.", Price = (decimal)564.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 985, Name = "Mountain-500 Silver, 42", ProductModel = "Mountain-500", Description = "Suitable for any type of riding, on or off-road. Fits any budget. Smooth-shifting with a comfortable ride.", Price = (decimal)564.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 986, Name = "Mountain-500 Silver, 44", ProductModel = "Mountain-500", Description = "Suitable for any type of riding, on or off-road. Fits any budget. Smooth-shifting with a comfortable ride.", Price = (decimal)564.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 987, Name = "Mountain-500 Silver, 48", ProductModel = "Mountain-500", Description = "Suitable for any type of riding, on or off-road. Fits any budget. Smooth-shifting with a comfortable ride.", Price = (decimal)564.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 988, Name = "Mountain-500 Silver, 52", ProductModel = "Mountain-500", Description = "Suitable for any type of riding, on or off-road. Fits any budget. Smooth-shifting with a comfortable ride.", Price = (decimal)564.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 989, Name = "Mountain-500 Black, 40", ProductModel = "Mountain-500", Description = "Suitable for any type of riding, on or off-road. Fits any budget. Smooth-shifting with a comfortable ride.", Price = (decimal)539.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 990, Name = "Mountain-500 Black, 42", ProductModel = "Mountain-500", Description = "Suitable for any type of riding, on or off-road. Fits any budget. Smooth-shifting with a comfortable ride.", Price = (decimal)539.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 991, Name = "Mountain-500 Black, 44", ProductModel = "Mountain-500", Description = "Suitable for any type of riding, on or off-road. Fits any budget. Smooth-shifting with a comfortable ride.", Price = (decimal)539.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 992, Name = "Mountain-500 Black, 48", ProductModel = "Mountain-500", Description = "Suitable for any type of riding, on or off-road. Fits any budget. Smooth-shifting with a comfortable ride.", Price = (decimal)539.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 993, Name = "Mountain-500 Black, 52", ProductModel = "Mountain-500", Description = "Suitable for any type of riding, on or off-road. Fits any budget. Smooth-shifting with a comfortable ride.", Price = (decimal)539.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 994, Name = "LL Bottom Bracket", ProductModel = "LL Bottom Bracket", Description = "Chromoly steel.", Price = (decimal)53.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 995, Name = "ML Bottom Bracket", ProductModel = "ML Bottom Bracket", Description = "Aluminum alloy cups; large diameter spindle.", Price = (decimal)101.24, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 996, Name = "HL Bottom Bracket", ProductModel = "HL Bottom Bracket", Description = "Aluminum alloy cups and a hollow axle.", Price = (decimal)121.49, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 997, Name = "Road-750 Black, 44", ProductModel = "Road-750", Description = "Entry level adult bike; offers a comfortable ride cross-country or down the block. Quick-release hubs and rims.", Price = (decimal)539.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 998, Name = "Road-750 Black, 48", ProductModel = "Road-750", Description = "Entry level adult bike; offers a comfortable ride cross-country or down the block. Quick-release hubs and rims.", Price = (decimal)539.99, ModifiedDate = new DateTime(2004, 3, 11) };
yield return new Product { ProductID = 999, Name = "Road-750 Black, 52", ProductModel = "Road-750", Description = "Entry level adult bike; offers a comfortable ride cross-country or down the block. Quick-release hubs and rims.", Price = (decimal)539.99, ModifiedDate = new DateTime(2004, 3, 11) };        }
    
        public static int DeleteProduct(Product product) {
            if (product.ProductID >= 0)
            {
                return 0;
            }
            else
            {
                return 999;
            }
        }
        public static int UpdateProduct(Product product)
        {
            if (product.ProductID >= 0)
            {
                return 0;
            }
            else
            {
                return 999;
            }
        }
        public static int InsertProduct(Product product)
        {
            List<Product> products;
            if (System.Web.HttpContext.Current.Session["Products"] == null)
            {
                products = new List<Product> { product };
            }
            else
            {
                products = new List<Product>((IEnumerable<Product>)System.Web.HttpContext.Current.Session["Products"]);
                products.Add(product);
            }
            System.Web.HttpContext.Current.Session.Add("Products", (IEnumerable<Product>)products);
            return 0;
        }
    }
}
